# 给定一个正整数 n，生成一个包含 1 到 n^2 所有元素，且元素按顺时针顺序螺旋排列的正方形矩阵。
#
# 示例:
#
# 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
#
class Solution:
    def generateMatrix(self, n: int) -> List[List[int]]:
        startx, starty = 0, 0
        index = 1
        count = 1
        num = n // 2
        res = [[0] * n for _ in range(n)]
        for i in range(num):
            for _ in range(n - index): # round 1
                res[startx][starty] = count
                starty += 1
                count += 1
            for _ in range(n - index): # round 2
                res[startx][starty] = count
                startx += 1
                count += 1
            for _ in range(n - index): # round 3
                res[startx][starty] = count
                starty -= 1
                count += 1
            for _ in range(n - index): # round 4
                res[startx][starty] = count
                startx -= 1
                count += 1
            startx += 1
            starty += 1
            index += 2
        if n % 2 == 1:
            res[num][num] = count
        return res

"""
00 01 02 03
10 11 12 13
20 21 22 23
30 31 32 33

a
x: 0->0 y:0->3
x: 0->3 y:3->3
x: 3->3 y:3->0
x: 3->0 y:0->0
有点感慨吧，这道题其实在9月5号左右有仔细看过，也研究过卡哥的视频和方法，但确实解答的很吃力
没想到时隔两个月，我能够自己想起来方法，然后一点点调试，把这道中等题目写出来
加油，还是会有进步的
"""

